package cn.t.dto.order;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class WorkOrderCreateDTO {

    /**
     * 类型 工单类型（1.质检、2.领料、3.换货、4.退货、5.补货、6.旧换新、7.紧急领料）
     */
    private Integer type = 2;
    /**
     * 公司ID
     */
    private Long firmId;
    /**
     * 工单号
     */
    private String workOrderSn;
    /**
     * 设备ID
     */
    private Long deviceId;
    /**
     * 操作人ID
     */
    private String operatorId;
    /**
     * 客户系统流程ID
     */
    private String processId;
    /**
     * 创建人ID
     */
    private String creatorId;
    /**
     * 创建人account 企业站会传员工工号
     */
    private String account;
    /**
     * 备注
     */
    private String remark;
    private int status;
    /**
     * 操作物料信息
     */
    private List<WorkOrderCreateItem> planData;
    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Date createTime;
    /**
     * 截止时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date expireDate;

    /**
     * sap客户号
     */
    private String customerCode;

    /**
     * 申请人-小程序端显示
     */
    private String name;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class WorkOrderCreateItem {
        /**
         * sku号
         */
        private String sku;
        /**
         * 客户物料号
         */
        private String itemId;
        /**
         * 数量
         */
        private Long qty;
    }
}
